<?php

/*************************************************************************************************
* 	Tutoriel de création d'un formulaire personnalisé par Mosaika 
	Plus d'infos sur http://mosaika.fr/creer-formulaire-wordpress-sur-mesure
*************************************************************************************************/


function wpspo_traitement_formulaire() {
    
    /*************************************************************************************************
    * On recupère les globals
    *************************************************************************************************/                     
    global $current_user;
    global $post;
    global $wpdb;
    
    /*************************************************************************************************
    * On recupère les options du plugin
    *************************************************************************************************/
    if(get_option('wpspo_plugin_settings')) { extract(get_option('wpspo_plugin_settings')); }
    $paramWpspoSetting = get_option('wpspo_plugin_settings');
    // et pour les emails
    if(get_option('wpspo_emails_settings')) { extract(get_option('wpspo_emails_settings')); }
    $paramWpspoEmailSetting = get_option('wpspo_emails_settings');
    
    add_filter('wp_mail_content_type',create_function('', 'return "text/html"; '));
 
    /*************************************************************************************************
    * On recupère l'ID du projet et les infos du défi
    *************************************************************************************************/
    $idProjet = get_post_meta($post->ID, 'wpspo_choixprojets', true);
    $data = WPSPO_defis::get_options($post->ID);
    $valueOptions = json_decode($data->defis_option_value);
    
    /*************************************************************************************************
    * On recupère le HTML du email modèle
    *************************************************************************************************/
    $tplHtml = @file_get_contents(WP_PLUGIN_URL.'/'.WPSPO_NAME_DIR.'/wpspo-themes/default/wpspo_email.html');
    $tplHtml = str_replace('#URL#', WPSPO_IMG_PATH, $tplHtml);
    $tplHtml = str_replace('#TITLE#', __( 'Notice of' , 'sponsorpress'), $tplHtml);
    $tplHtml = str_replace('#LOGO#', $paramWpspoEmailSetting['logo'], $tplHtml);
    $email_bottom = wpspo_content_traitement($paramWpspoEmailSetting['email_txt_bottom'], $args, 0);
    $tplHtml = str_replace('#BOTTOM#', $email_bottom, $tplHtml);
    
    
    /*
     * TRAITEMENT DU FORMULAIRE DE PROMESSE tp-wpspo-single-defi.php
     */
    if (isset($_POST['promesse-envoi']) && isset($_POST['security-promesse'])) {
 
        /*************************************************************************************************
		* On vérifie la validité du NONCE
		*************************************************************************************************/
        if (wp_verify_nonce($_POST['security-promesse'], 'go-promesse')) {

            /*************************************************************************************************
			* On fait ce que l'on a à faire !
			*************************************************************************************************/
            $promesse = intval($_POST['promess_montant']);
 
            if ($promesse < 0) {
 
                $url = add_query_arg('erreur', 'radin', wp_get_referer());
 
                wp_safe_redirect($url);
                exit();
 
            } else if ($promesse > 10000) {
 
                $url = add_query_arg('erreur', 'trop', wp_get_referer());
 
                wp_safe_redirect($url);
                exit();
 
            } else {
                
                /*************************************************************************************************
                * On insère dans la base
                *************************************************************************************************/
                $savePromesse = WPSPO_Promesse::save($post->ID, $idProjet, $current_user->ID, $_POST['sponsor_user'], '', $_POST['promess_montant'], $valueOptions->mode_defis);
                
                /*************************************************************************************************
                * Envoi emails à l'utilisateur qu'il sponsorise, à l'utilisateur pour le remercier
                *************************************************************************************************/                
                if($savePromesse==true) {
                    
                    $addText = '';
                    if($valueOptions->mode_defis==1) { 
                        $addText = '/'.$valueOptions->text_mode_defis;
                    }
                    // traitement du contenu de l'email  
                    $args = array(
                        '#_LOGIN'=>get_the_author_meta( 'display_name', $_POST['sponsor_user'] ), 
                        '#_TOTAL_PROMESSSE' => $_POST['promess_montant'].get_wpspo_currency_symbol().$addText,
                        '#_PARTICIPANT' => get_the_author_meta( 'display_name', $current_user->ID ),
                    );
                    $email_content = wpspo_content_traitement($paramWpspoEmailSetting['email_txt_newpromesse'], $args);
                    $tplHtml = str_replace('#TEXT#', $email_content, $tplHtml);
                    
                    // Email à l'utilisateur qu'il sponsorise
                    $emailTo = get_the_author_meta( 'user_email', $_POST['sponsor_user'] );
                    $subject = __( 'Notice of' , 'sponsorpress').' '.get_bloginfo('name');
                    $headers[] = 'From: '.get_bloginfo('name').' <'.$paramWpspoSetting['emailresponse'].'>';

                    add_filter('wp_mail_content_type',create_function('', 'return "text/html"; '));
                    if( !wp_mail( $emailTo, $subject, stripslashes($tplHtml), $headers ) ) {
                        //echo stripslashes($email_content);
                        exit('Erreur envoi mail insert promesse');
                    }
                    
                    // traitement du contenu de l'email  
                    $argsThanks = array(
                        '#_LOGIN'=>get_the_author_meta( 'display_name', $current_user->ID ), 
                        '#_TOTAL_PROMESSSE' => $_POST['promess_montant'].get_wpspo_currency_symbol(),
                        '#_PARTICIPANT' => get_the_author_meta( 'display_name', $_POST['sponsor_user'] ),
                        
                    );
                    $emailThanks_content = wpspo_content_traitement($paramWpspoEmailSetting['email_txt_thankspromesse'], $argsThanks);
                    $tplHtmlThanks = str_replace('#TEXT#', $emailThanks_content, $tplHtml);
                    
                    // Email à l'utilisateur pour le remercier                    
                    $emailThanksTo = $current_user->user_email;
                    $subjectThanks = __( 'Notice of' , 'sponsorpress').' '.get_bloginfo('name');
                    $headersThanks[] = 'From: '.get_bloginfo('name').' <'.$paramWpspoSetting['emailresponse'].'>';
                    
                    add_filter('wp_mail_content_type',create_function('', 'return "text/html"; '));
                    if( !wp_mail( $emailThanksTo, $subjectThanks, stripslashes($tplHtmlThanks), $headersThanks ) ) {
                        //echo stripslashes($email_content);
                        exit('Erreur envoi mail remerciement');
                    }
                    
                    
                    // On efface le POST et on redirige avec ok
                    unset($_POST);
                    $url = add_query_arg('sponsoriser', '1', wp_get_referer());
                    wp_safe_redirect($url);                    
                    exit();
                }
                
                
            }
 
        }
    } 


    /*
     * TRAITEMENT DU FORMULAIRE DE PARTICIPATION tp-wpspo-single-defi.php
     */
    if (isset($_POST['submit-participate']) && isset($_POST['security-participate'])) {
 
        /*************************************************************************************************
		* On vérifie la validité du NONCE
		*************************************************************************************************/
        if (wp_verify_nonce($_POST['security-participate'], 'go-participate')) {
            
            if(trim($_POST['textparticipate']) == '') {
                
                $url = add_query_arg('erreurparticipation', 'text', wp_get_referer());
                wp_safe_redirect($url);
                exit();
                
            } else if ($valueOptions->share_prive==1 && $_POST['privatecode'] == '') {
                
                $url = add_query_arg('erreurparticipation', 'privatecode', wp_get_referer());
                wp_safe_redirect($url);
                exit();
                
            } else if ($valueOptions->share_prive==1 && $_POST['privatecode'] && $_POST['privatecode']!=$valueOptions->cle_defis) {
                
                $url = add_query_arg('erreurparticipation', 'privatecode', wp_get_referer());
                wp_safe_redirect($url);
                exit();
                
            } else {
        
                /*************************************************************************************************
                * On change son role pour un participant (sauf admin)
                *************************************************************************************************/
                $userRoleName = wpspo_get_user_role();
                if($userRoleName!='administrator' && !$userRoleName=='participant') {
                    wp_update_user( array( 'ID' => $current_user->ID, 'role' => 'participant') );
                }
                
                /*************************************************************************************************
                * On sauve le nouveau participant dans la base
                *************************************************************************************************/
                $optionsUser = json_encode( array( 
                                    'text'=> trim($_POST['textparticipate']),
                                ) );
                $validParticipant = WPSPO_Users::save($current_user->ID, 1, $post->ID, $optionsUser, $_POST['newletter']);
            
                /*************************************************************************************************
                * On envoi à l'organisateur du défi un mail pour le prévenir
                *************************************************************************************************/
                if($validParticipant==true) {
                    $emailTo3 = get_the_author_meta( 'user_email', $post->post_author ); //TODO Change to $current_user->user_email
                    $subject3 = __( 'Notice of' , 'sponsorpress').' '.get_bloginfo('name');
                    $headers3[] = 'From: '.get_bloginfo('name').' <'.$paramWpspoSetting['emailresponse'].'>';
                    if($paramWpspoSetting['emailplugin']==1) {
                    $headers3['Bcc'] = "Bcc: ".$paramWpspoSetting['emailplugin'];
                    }
                    $argsValue3 = array(
                        '#_PARTICIPANT'=> get_the_author_meta( 'display_name', $current_user->ID ), 
                        '#_LOGIN' => get_the_author_meta( 'display_name', $post->post_author ),
                    );
                    $email_content3 =  wpspo_content_traitement($paramWpspoEmailSetting['email_txt_participate'], $argsValue3);
                    $tplHtml3 = str_replace('#TEXT#', $email_content3, $tplHtml);
                    
                    add_filter('wp_mail_content_type',create_function('', 'return "text/html"; '));
                    if( wp_mail( $emailTo3, $subject3, stripslashes($tplHtml3), $headers3 ) ) {
                         $emailSent = true;
                    } else {
                        //echo stripslashes($email_content);
                        exit('Erreur envoi mail insert promesse');
                    }
                    unset($_POST);
                    $url = add_query_arg('participate', '1', wp_get_referer());
                    wp_safe_redirect($url);                    
                    exit();
                    
                    /*************************************************************************************************
                    * On envoi à l'utilisateur un mail pour le remercier
                    *************************************************************************************************/
                    // TODO
                    

                }
            }
        }
    }
    
   
    /*
     * TRAITEMENT DU FORMULAIRE ACCEPT CONDITIONS PARTICIPANT GUIDE tp-wpspo-organiser.php
     */
    if (isset($_POST['submit-guide']) && isset($_POST['security-guide']) && is_user_logged_in() ) {

        /*************************************************************************************************
		* On vérifie la validité du NONCE
		*************************************************************************************************/
        if (wp_verify_nonce($_POST['security-guide'], 'go-guide')) {
            
            /* On vérifier les données */
            if( trim($_POST['post_accept']) == '') {
                $url = add_query_arg('erreur', 'accept', wp_get_referer());
                wp_safe_redirect($url);
                exit();
            } else {
                /* On traite les données */
                if($userRoleName=='subscriber') {
                    wp_update_user( array( 'ID' => $current_user->ID, 'role' => 'participant') );
                    if( isset($_POST["projet"]) && is_numeric($_POST["projet"]) ) {
                        wp_safe_redirect( get_permalink(WPSPO_ID_ORGANISER).'/'.sanitize_title(get_the_title($_POST["projet"])) );
                        exit();
                    } else {
                        wp_safe_redirect( get_permalink(WPSPO_ID_PROJETS).'/'.__('choose-a-project', 'sponsorpress') );
                        exit();
                    }
                }
            }
            
        }
    }
    
    /* On enlève la fonction pour mettre le mail en HTML pour éviter des conflits avec d'autres plugins */
    remove_filter( 'wp_mail_content_type', 'set_html_content_type' );
    /* La petite fonction pour mettre le mail en HTML */
    if( !function_exists('set_html_content_type') ) { 
        function set_html_content_type() {
        return 'text/html';
        }
    }

}
add_action('template_redirect', 'wpspo_traitement_formulaire');

/*
 * TRAITEMENT DU FORMULAIRE DE PARTICIPATION tp-wpspo-single-defi.php
 */
function wpspo_traitement_actions() {
    
    /*************************************************************************************************
    * On recupère les globals
    *************************************************************************************************/ 
    global $current_user;
    global $post;
    
    /*************************************************************************************************
    * On recupère les options du plugin
    *************************************************************************************************/
    if(get_option('wpspo_plugin_settings')) { extract(get_option('wpspo_plugin_settings')); }
    $paramWpspoSetting = get_option('wpspo_plugin_settings');
    // et pour les emails
    if(get_option('wpspo_emails_settings')) { extract(get_option('wpspo_emails_settings')); }
    $paramWpspoEmailSetting = get_option('wpspo_emails_settings');
    
    /*************************************************************************************************
    * On recupère le HTML du email modèle
    *************************************************************************************************/
    $tplHtml = @file_get_contents(WP_PLUGIN_URL.'/'.WPSPO_NAME_DIR.'/wpspo-themes/default/wpspo_email.html');
    $tplHtml = str_replace('#URL#', WPSPO_IMG_PATH, $tplHtml);
    $tplHtml = str_replace('#TITLE#', __( 'Notice of' , 'sponsorpress'), $tplHtml);
    $tplHtml = str_replace('#LOGO#', $paramWpspoEmailSetting['logo'], $tplHtml);
    $email_bottom = wpspo_content_traitement($paramWpspoEmailSetting['email_txt_bottom'], $args, 0);
    $tplHtml = str_replace('#BOTTOM#', $email_bottom, $tplHtml);
 
    /*************************************************************************************************
    * CLORE UN DEFI wpspo-widgets.php
    *************************************************************************************************/
    if (isset($_POST['submit-closedefi']) && isset($_POST['security-closedefi'])) {
        
        /*************************************************************************************************
		* On vérifie la validité du NONCE
		*************************************************************************************************/
        if (wp_verify_nonce($_POST['security-closedefi'], 'go-closedefi')) {
            
            $closePromesse = WPSPO_Defis::updateStatus($post->ID, 'archive');
            $listUsers = WPSPO_Users::get_listByDefi($post->ID);
            
            $subject = __( 'Notice of' , 'sponsorpress').' '.get_bloginfo('name');
            $headers[] = 'From: '.get_bloginfo('name').' <'.$paramWpspoSetting['emailresponse'].'>';
            if($paramWpspoSetting['emailplugin']==1) {
            $headers['Bcc'] = "Bcc: ".$paramWpspoSetting['emailplugin'];
            }
  
            foreach($listUsers as $list) {
                
                /*************************************************************************************************
                 * ENVOI MAIL AU PARTICIPANTS POUR QU'ILS RENTRENT LEURS RESULTATS
                 *************************************************************************************************/
                $emailTo = get_the_author_meta( 'user_email', $list->users_id_user );
                $argsValue = array(
                        'ID'=> $post->ID,
                        '#_PARTICIPANT'=> get_the_author_meta( 'display_name', $list->users_id_user ),
                    );
                $email_content =  wpspo_content_traitement($paramWpspoEmailSetting['email_txt_challenge_close'], $argsValue);
                $tplHtml = str_replace('#TEXT#', $email_content , $tplHtml);
                
                add_filter('wp_mail_content_type',create_function('', 'return "text/html"; '));
                if( !wp_mail( $emailTo, $subject, stripslashes($tplHtml), $headers ) ) {
                    exit('Erreur envoi mail close défi');
                }

            }
            //unset($_POST);
            $url = add_query_arg('delete_p', '1', wp_get_referer());
            wp_safe_redirect($url);
            exit();
        }
    }
    
    /*************************************************************************************************
    * VALIDATION CALCUL FINAL DEFI tp-wpspo-single-defi.php
    *************************************************************************************************/
    if (isset($_POST['submit-finish']) && isset($_POST['security-finish'])) {
        
        /*************************************************************************************************
		* On vérifie la validité du NONCE
		*************************************************************************************************/
        if (wp_verify_nonce($_POST['security-result'], 'go-result')) {
            
        }
        
    }
    /*************************************************************************************************
    * VALIDATION RESULTAT REALISE DEFI tp-wpspo-single-defi.php
    *************************************************************************************************/
    if (isset($_POST['submit-result']) && isset($_POST['security-result'])) {
        
        /*************************************************************************************************
		* On vérifie la validité du NONCE
		*************************************************************************************************/
        if (wp_verify_nonce($_POST['security-result'], 'go-result')) {
            
            $testRealiseFloat = (float)$_POST['result_num'];
            // On formate le chiffre fourni en décimal numérique
            if( isset($_POST["result_num"]) && $_POST["result_num"]!='') {
                $_POST["result_num"] = str_replace(',', '.', $_POST["result_num"]);
                $_POST["result_num"] = number_format($_POST["result_num"], 2, '.', '');
            }
            
            if( trim($_POST['result_num']) == '' or empty($testRealiseFloat) or !is_numeric($_POST['result_num']) ) {
                
                $url = add_query_arg('erreur_r', 'zero', wp_get_referer());
                wp_safe_redirect($url);
                exit();
                
            } else {
            
                // On update le champ dans la table WPSPO_Users de l'utilisateur pour ce défi
                $updateRealise = WPSPO_Users::updateRealise($post->ID, $current_user->ID, $_POST["result_num"]);
                if( $updateRealise == true ) {
                    
                    // On envoi un mail à chacun de ses sponsors pour signaler qu'il a fini !
                    $subject = __( 'Notice of' , 'sponsorpress').' '.get_bloginfo('name');
                    $headers[] = 'From: '.get_bloginfo('name').' <'.$paramWpspoSetting['emailresponse'].'>';
                    if($paramWpspoSetting['emailplugin']==1) {
                    $headers['Bcc'] = "Bcc: ".$paramWpspoSetting['emailplugin'];
                    }

                    // On va chercher les sponsor de l'utilisateur qui vient de finir
                    $getSponsors = WPSPO_Promesse::get_parentByIdDefi($post->ID, $current_user->ID);        
                    
                    if( $getSponsors ) {

                        foreach( $getSponsors as $sponsors ) {
                            
                            // On envoi un mail au sponsor pour qu'il finalise sa promesse
                            $emailTo = get_the_author_meta( 'user_email', $sponsors->promesse_id_user );
                            $argsValue = array(
                                'ID'=> $_POST['defi_id'],
                                '#_PARTICIPANT'=> get_the_author_meta( 'display_name', $current_user->ID ),
                                '#_LOGIN' => get_the_author_meta( 'display_name', $sponsors->promesse_id_user )
                            );
                            $email_content =  wpspo_content_traitement($paramWpspoEmailSetting['email_txt_finish_challenge'], $argsValue);
                            $tplHtml = str_replace('#TEXT#', $email_content , $tplHtml);
                            
                            add_filter('wp_mail_content_type',create_function('', 'return "text/html"; '));
                            if( !wp_mail( $emailTo, $subject, stripslashes($tplHtml), $headers ) ) {
                                exit('Erreur envoi mail delete promesse');
                            }
                        }
                        
                        unset($_POST);
                    }

                } 

                $url = add_query_arg('realise_d', '1', wp_get_referer());
                wp_safe_redirect($url);
                exit();
            }
        }
    }
    /*************************************************************************************************
    * DELETE PROMESSE VIA PROFIL tp-wpspo-profil.php
    *************************************************************************************************/
    if (isset($_POST['submit-delpromesse']) && isset($_POST['security-delpromesse'])) {
        
        /*************************************************************************************************
		* On vérifie la validité du NONCE
		*************************************************************************************************/
        if (wp_verify_nonce($_POST['security-delpromesse'], 'go-delpromesse')) {
            
            if( isset($_POST['promesse_id']) && $_POST['promesse_id']>0 ) {
                
                $deletePromesse = WPSPO_Promesse::delete($current_user->ID, $_POST['promesse_id']);
                if($deletePromesse==true) {
                    
                    /*************************************************************************************************
                    * ENVOI MAIL AU PARTICIPANT SPONSORISE
                    *************************************************************************************************/
                    $emailTo = get_the_author_meta( 'user_email', $_POST['sponsor_id'] );
                    $subject = __( 'Notice of' , 'sponsorpress').' '.get_bloginfo('name');
                    $headers[] = 'From: '.get_bloginfo('name').' <'.$paramWpspoSetting['emailresponse'].'>';
                    if($paramWpspoSetting['emailplugin']==1) {
                    $headers['Bcc'] = "Bcc: ".$paramWpspoSetting['emailplugin'];
                    }
                    $argsValue = array(
                        'ID'=> $_POST['defi_id'],
                        '#_PARTICIPANT'=> get_the_author_meta( 'display_name', $current_user->ID ), 
                        '#_LOGIN' => get_the_author_meta( 'display_name', $post->post_author ),
                    );
                    $email_content =  wpspo_content_traitement($paramWpspoEmailSetting['email_txt_challenge_delete'], $argsValue);
                    $tplHtml = str_replace('#TEXT#', $email_content , $tplHtml);
                    
                    add_filter('wp_mail_content_type',create_function('', 'return "text/html"; '));
                    if( !wp_mail( $emailTo, $subject, stripslashes($tplHtml), $headers ) ) {
                        exit('Erreur envoi mail delete promesse');
                    }
                    unset($_POST);
                    $url = add_query_arg('delete_p', '1', wp_get_referer());
                    wp_safe_redirect($url);
                    exit();
                } 
               
            } else {
                //unset($_POST);
                $url = add_query_arg('error', '1', wp_get_referer());
                wp_safe_redirect($url);
                exit();
            }
            
        }
        
        

    } // FIN DELETE PROMESSE VIA PROFIL
    
    /*************************************************************************************************
    * DELETE DEFI VIA PROFIL tp-wpspo-profil.php
    *************************************************************************************************/
    if (isset($_POST['submit-deletedefi']) && isset($_POST['security-deletedefi'])) {
        
        /*************************************************************************************************
		* On vérifie la validité du NONCE
		*************************************************************************************************/
        if (wp_verify_nonce($_POST['security-deletedefi'], 'go-deletedefi')) {
            
            if(is_numeric($_POST['iddefi']) && $_POST['iddefi'] != '') {
                
                // Delete de la table des infos defis
                $deletePost = WPSPO_Defis::delete($current_user->ID, $_POST['iddefi']);
                

                if($deletePost) {
                    // Delete des meta keys
                    $deleteMetaKey = WPSPO_Object::deleteMetaKey($_POST['iddefi']);
                    // Delete Post
                    $deletePostType = WPSPO_Object::deletePostType($_POST['iddefi']);
                    
                    $countPromesse = WPSPO_Promesse::get_countByDefi($_POST['iddefi']);
                    if($countPromesse>0) {
                        $deletePromesse = WPSPO_Promesse::deleteByDefi($_POST['iddefi']);
                    }
                    unset($_POST);
                    $url = add_query_arg('delete', '1', wp_get_referer());
                    wp_safe_redirect($url);
                    exit();

                }
            }
        }
    }
     /*************************************************************************************************
    * MODIFY DEFI VIA PROFIL tp-wpspo-profil.php
    *************************************************************************************************/
    if (isset($_POST['submit-modifydefi']) && isset($_POST['security-modifydefi'])) {
        
        /*************************************************************************************************
		* On vérifie la validité du NONCE
		*************************************************************************************************/
        if (wp_verify_nonce($_POST['security-modifydefi'], 'go-modifydefi')) {
            
            if( trim($_POST['iddefi']) == '' or !is_numeric($_POST['iddefi']) ) {
                $url = add_query_arg('erreur', '1', wp_get_referer());
                wp_safe_redirect($url);
                exit();
            } else if (trim($_POST['idprojet']) == '' or !is_numeric($_POST['idprojet'])) {
                $url = add_query_arg('erreur', '2', wp_get_referer());
                wp_safe_redirect($url);
                exit();
            } else {                
                    
                    $param = array('modifier' => '1', 'd' => $_POST['iddefi'], 'leprojet' => $_POST['idprojet']);
                    $url = add_query_arg( $param, get_permalink(WPSPO_ID_ORGANISER));
                    //sunset($_POST);
                    wp_safe_redirect($url);
                    exit();
            }
        }
    }
    /*    
    
     SUPPRIMER UNE PARTICIPATION
     
    if( !empty($_POST) && $_POST['submit-removeme'] ) {

        if ( wp_verify_nonce( $_POST['security'], 'go-removeme' ) ) { 

            $deleteParticipation = WPSPO_Users::deleteUserByDefi($current_user->ID, $_POST['defi_id']);
            if($deleteParticipation==true) {
                unset($_POST);
                echo wpspo_redirection( get_permalink(WPSPO_ID_COMPTE).'?#mesparticipations',"js" );
            }
            
        } else {
            exit('Erreur security');   
        }
    }*/
    
    /* On enlève la fonction pour mettre le mail en HTML pour éviter des conflits avec d'autres plugins */
    remove_filter( 'wp_mail_content_type', 'set_html_content_type' );
    /* La petite fonction pour mettre le mail en HTML */
    if( !function_exists('set_html_content_type') ) { 
        function set_html_content_type() {
        return 'text/html';
        }
    }
}
add_action('template_redirect', 'wpspo_traitement_actions');